View this email in your browser

So week 11 kicked off, and I have never been more exhausted trying to force myself to study. Week one had a ton of stuff to do and I barely made it to the finish line. It would be easier if we could see the course prior to starting so we can prepare!

A pre-warning is that this course I'm starting is called Software Development in Practise. This means it's time to get coding, and therefore there may be some dry bits over the next few weeks. But, I promise to try and keep it as interesting as possible.

Boeing Flawed Flight Control System

The first discussion post for this course was to write something discussing an accident or disaster that was caused by a software error. Now, I went in all guns blazing about the Boeing disasters in 2018 and 2019 and when I finally got to the end of the post I realised it wasn't technically a software error that caused it. DAMN! It was 9:30 pm and the deadline was midnight so I had to work fast. It was sad, and not very fun to start over from scratch. However, I did not want all my hard work to go to waste on this, so I thought hey...what a great topic for the blog...

So here is my slightly unfinished piece:

In 2018 and 2019, a flight control system flaw led to two crashes for two different Boeing 737 MAX passenger planes, causing a total death toll of nearly 350. This resulted in the worldwide grounding of all planes of this type. (Herkert, Borenstein and Miller, 2020).

The source of the crash was with the new Maneuvering Characteristics Augmentation System (MCAS) which activated when receiving incorrect data input from the only connected Angle of Attack (AOA) sensor. (Luo, Li and Li, 2020). This system was designed to compensate for inadequacies in the hardware design but did not have any sense checks built in, despite there being two sensors onboard the plane. As such, there was no backup added in the event that the data was incorrect despite the rate of AOA sensory failure being six times higher than what the Federal Aviation Administration allows for its hazard classification.

The day before the first crash, there was an incident during flight where the pilots struggled to gain control as the plane kept nosediving. In this case, the plane was landed safely although the pilots did not understand the nature of the problem. The next morning the same plane crashed at full speed into the Java Sea minutes after take-off and all 189 people on the plane died (Rhee, Wagschal and Jung, 2020). After, it was reported that MCAS was not present in the training and documentation and Boeing responded by issuing procedures on how to respond to these issues if they were to occur again and did not opt to ground the planes. As such, prior to the second crash, it was different in that the pilots were aware of the fault, however, this happened and this happened and despite the prior knowledge, there was a catastrophic failure.

The main issue with using this software in the first place was that it was relying on unreliable hardware. With a company as large as Boeing, it's shocking to see that this was not brought up, or if it was that it was dismissed. The real horror of this disaster is the company reaction to the initial crash, and that it wasn't until the second crash before the issues were taken seriously. Many engineering lessons can be drawn from this situation, but mostly my thoughts lie with the people who were failed in the worst way, and their relatives who have to forever live with it.

Herkert, J., Borenstein, J. and Miller, K. (2020). The Boeing 737 MAX: Lessons for Engineering Ethics. Science and Engineering Ethics, 26, pp.2957–2974.

Luo, P., Li, M. and Li, Z.S. (2020). An Internet of Things (loT) Perspective of Understanding the Boeing 737 MAX Crash. 2020 Global Reliability and Prognostics and Health Management (PHM-Shanghai).

Rhee, J., Wagschal, G. and Jung, J. (2020). How Boeing 737 MAX’s flawed flight control system led to 2 crashes that killed 346. ABC News. Available at: https://abcnews.go.com/US/boeing-737-maxs-flawed-flight-control-system-led/story?id=74321424 (Accessed: 1 Nov. 2021).

I think situations like this highlight why I want to be on projects and why I always strive to do the absolute best I can. Even for small fry stuff like what I do in my job at the moment (okay guys - how many options do we need to have for types of address??), it is so important to foster a good work ethic and strong dedication to getting the absolute best and correct outcome, regardless of constraints. And it's fostering these skills that can then scale up into projects at companies such as Boeing and the consequences when this is lacking is evident.

You'll have to stay tuned for next week to find out what I did actually write my post about!

Machine Learning

So you all should be experts on Artificial Intelligence and Machine Learning by now. But, I found this really good video by Wired, which explains Machine Learning at 5 different levels of difficulty. Would be super interested to find out what level everyone can get to - let me know!

How high a level can you go? Link here if the video doesn't work: (https://www.youtube.com/watch?v=5q87K1WaoFI)

Cours pour débuter avec PythonPython

I would be remiss to not chat a little bit about Python this week. If you've never heard of it, that wouldn't surprise me - but trust me by the end of this course you'll be sick of it! Python is a coding language that is extremely versatile, you can do complex analysis and machine learning or even build an app from scratch! Some famous examples of apps created with Python are Instagram, Spotify and Uber.

My course focuses mainly on Python, and I will have my first programming assignment where I will need to code an algorithm, write a report, and more.

Thankfully, I do have a little bit of experience with Python, so it won't be learning completely from scratch. I sometimes solve algorithm problems on the weekend. How you approach such problems is, okay how would I work this out? And then okay how do I tell the computer how to do it.

Here's an example little problem for you:

Let's say a bricklayer is given a number of bricks all of different weights and a maximum number of bricks that can be in each row.

As the wall gets higher, the bricks take more and more effort to lift, which is proportional to how heavy they are. (The exact formula is Effort = ((RowNumber-1) * 0.65 * Weight of the Brick))

How would you tell the builder to build the wall so that it takes him the least amount of work?

For example:

Total Bricks: 12

Maximum Bricks in a row: 3

Weight of each of the Bricks: (100g, 5g, 90g, 5g, 80g, 10g, 70g, 20g, 60g, 30g, 50g, 40g)

If you are interested, this is the code I wrote to solve this problem.

import sys
import math

#x is max bricks in a row and n is number of bricks
x = int(input())
n = int(input())

#created sorted list
weights = []
for i in input().split():
    m = int(i)
    weights.append(m)
weights.sort(reverse = True)

#assign a row
rows = math.ceil(n/x)
row_n = []
a = 0
while a < rows:
    no_bricks = x
    b = 1
    while b <= no_bricks:
        row_n.append(a)
        b = b + 1
    a = a + 1

#calculate effort
effort = []
j=0
for i in weights:
    x = float(i)
    y = row_n[j]
    w = (y * 0.65) * x
    effort.append(w)
    j = j+1
print(format(sum(effort),".3f"))

That's it for this week, I hope everyone is having a lovely autumn so far. Whilst in France I've been crocheting a new cardigan, below is my crochet progress so far. As Christmas approaches I look forward to this horrible year finally being over - come on 2022 get here faster!

Copyright © *|CURRENT_YEAR|* *|LIST:COMPANY|*, All rights reserved.
*|IFNOT:ARCHIVE_PAGE|* *|LIST:DESCRIPTION|*

Our mailing address is:
*|HTML:LIST_ADDRESS_HTML|* *|END:IF|*

Want to change how you receive these emails?
You can update your preferences or unsubscribe from this list.

*|IF:REWARDS|* *|HTML:REWARDS|* *|END:IF|*